Azure-এর বিভিন্ন ডেটাবেস এবং ডেটা স্টোরেজ সিস্টেমগুলির মধ্যে Collections এবং Querying Data অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে। Collections হল ডেটার গোষ্ঠী বা গ্রুপ, এবং Querying Data হল সেই ডেটার মধ্যে প্রয়োজনীয় তথ্য খুঁজে বের করার প্রক্রিয়া। এই টপিকটি বিশেষভাবে Azure Cosmos DB এবং অন্যান্য ডেটাবেস সিস্টেমের ক্ষেত্রে প্রাসঙ্গিক, যেখানে ডেটা স্টোর করার জন্য Collections ব্যবহৃত হয় এবং ডেটা অনুসন্ধানের জন্য Querying করা হয়।
Collections কী?
Collections হল ডেটা সংগ্রহের একটি কাঠামো, যা সাধারণত ডেটাবেসে এক ধরনের কনটেইনার হিসেবে কাজ করে। এটি ডেটার একটি সেট, যেখানে আপনি বিভিন্ন ধরনের ডেটা রেকর্ড বা ডকুমেন্ট রাখতে পারেন।
Azure Cosmos DB-তে Collection
Azure Cosmos DB-তে Collections হল এমন একটি ডেটা কনটেইনার যা Documents (যেমন JSON ডকুমেন্ট) ধারণ করে। একটি Collection-এ হাজার হাজার বা লাখ লাখ ডকুমেন্ট থাকতে পারে। Cosmos DB তে Collection গুলি একটি Partitioned Container হিসেবে কাজ করে, যা Horizontal Scaling-এর মাধ্যমে ডেটা সংরক্ষণ এবং দ্রুত অ্যাক্সেস নিশ্চিত করে।
Collection-এর বৈশিষ্ট্য
- Scalability: Cosmos DB তে Collections স্বয়ংক্রিয়ভাবে স্কেল করা যায়, যার মাধ্যমে প্রয়োজনীয় পরিমাণ রিসোর্স ব্যবহার করে ডেটা সংরক্ষণ করা যায়।
- Multiple Models: Cosmos DB সাপোর্ট করে বিভিন্ন ডেটা মডেল যেমন Document DB, Key-Value, Column-Family, এবং Graph। এ কারণে, ডেটার বিভিন্ন ধরনের কাঠামোতে Collection তৈরি করা সম্ভব।
- Global Distribution: Cosmos DB-এর মাধ্যমে আপনি পৃথিবীর বিভিন্ন জায়গায় Collection-এর ডেটা শেয়ার এবং সিঙ্ক করতে পারবেন, যাতে প্রতিটি অঞ্চলে ডেটার দ্রুত অ্যাক্সেস পাওয়া যায়।
Querying Data
Querying Data হল ডেটাবেস বা কন্টেইনারের মধ্যে থাকা ডেটা খুঁজে বের করার প্রক্রিয়া। Azure Cosmos DB-তে, আপনি SQL-like কুয়েরি ব্যবহার করে ডেটা খুঁজে বের করতে পারেন, যেখানে ডেটা JSON ডকুমেন্টের আকারে থাকে। Cosmos DB SQL API আপনাকে কুয়েরি লেখার জন্য বিভিন্ন অপশন প্রদান করে, যেমন SELECT, WHERE, JOIN, ORDER BY, GROUP BY, ইত্যাদি।
Cosmos DB তে Querying-এর জন্য কিছু মূল টেকনিক
SELECT কুয়েরি: Cosmos DB তে, আপনি SELECT কুয়েরি ব্যবহার করে একটি Collection থেকে নির্দিষ্ট ডেটা নির্বাচন করতে পারেন। উদাহরণস্বরূপ:
SELECT * FROM c WHERE c.city = 'Dhaka'এই কুয়েরি সব ডকুমেন্ট খুঁজে বের করবে যেগুলির
cityফিল্ডের মান Dhaka।WHERE ক্লজ: ডেটার নির্দিষ্ট শর্তে WHERE ক্লজ ব্যবহার করে ফিল্টার করা যায়। যেমন:
SELECT c.name, c.age FROM c WHERE c.age > 30এই কুয়েরি ৩০ বছরের বেশি বয়সের সকল
nameএবংageরিটার্ন করবে।ORDER BY ক্লজ: আপনি ডেটা সাজানোর জন্য ORDER BY ব্যবহার করতে পারেন। উদাহরণ:
SELECT c.name, c.age FROM c WHERE c.city = 'Dhaka' ORDER BY c.age DESCএই কুয়েরি
Dhakaশহরের সকল ব্যক্তির নাম এবং বয়স কুয়েরি করে এবং বয়স অনুযায়ী সাজানো হয় (ডিসেন্ডিং অর্ডারে)।LIMIT ক্লজ: কিছু সীমিত রেকর্ড ফেরত পেতে আপনি LIMIT ব্যবহার করতে পারেন। যেমন:
SELECT c.name FROM c WHERE c.city = 'Dhaka' LIMIT 5এই কুয়েরি প্রথম ৫টি রেকর্ড
Dhakaশহর থেকে ফেরত দিবে।JOIN অপারেশন: Cosmos DB তে JOIN অপারেশন করা সম্ভব, তবে এটি কিছুটা সীমিত হতে পারে। আপনি একই Collection এর মধ্যে JOIN করতে পারেন।
SELECT c.name, o.productName FROM c JOIN o IN c.orders WHERE o.price > 100এই কুয়েরি সব ডকুমেন্ট খুঁজে বের করবে যেগুলিতে orders অ্যারে রয়েছে এবং যার মধ্যে
price১০০ এর বেশি।
Querying Data-এর সুবিধা
1. ফাস্ট এবং স্কেলেবল:
Cosmos DB তে ডেটা কুয়েরি করার সময় ডেটা সাইজের ওপর নির্ভর করে দ্রুত ফলাফল পাওয়া যায়, কারণ এটি Horizontal Scaling সমর্থন করে। ডেটার কোনো নির্দিষ্ট অংশে লোড পড়লে তা অন্যান্য অংশের উপর প্রভাব ফেলবে না।
2. লক ফ্রি এবং কনকারেন্ট অ্যাক্সেস:
Cosmos DB তে ডেটার ওপরে Multi-Region লক ফ্রি কনকারেন্ট অ্যাক্সেস পাওয়া যায়, যার ফলে একাধিক ব্যবহারকারী বা সিস্টেম ডেটার উপর একযোগভাবে কাজ করতে পারে।
3. কাস্টম কুয়েরি স্ট্রাকচার:
SQL-like কুয়েরি ব্যবহার করে আপনি যেকোনো ধরনের কাস্টম কুয়েরি তৈরি করতে পারেন যা আপনার ডেটা অনুসন্ধান প্রক্রিয়াকে আরও কার্যকর করে তোলে।
4. গ্লোবাল অ্যাক্সেস:
Cosmos DB আপনাকে আপনার ডেটা বিভিন্ন অঞ্চলে বিতরণ এবং সিঙ্ক করার সুবিধা প্রদান করে। ফলে আপনি ডেটাকে বিশ্বব্যাপী অ্যাক্সেসযোগ্য করতে পারেন।
সারাংশ
Collections হল ডেটা সংগঠনের একটি কাঠামো যা Azure Cosmos DB বা অন্য ডেটাবেসের মধ্যে ডেটা সংরক্ষণ করে। Querying Data হল সেই ডেটার মধ্যে নির্দিষ্ট তথ্য খুঁজে বের করার প্রক্রিয়া, যা SQL-like কুয়েরি ব্যবহার করে করা হয়। Cosmos DB তে কুয়েরি লেখার মাধ্যমে আপনি আপনার ডেটা আরও কার্যকরভাবে বিশ্লেষণ এবং ব্যবহার করতে পারেন, এবং এটির গ্লোবাল ডিস্ট্রিবিউশন সুবিধা ডেটা অ্যাক্সেস দ্রুত এবং স্কেলযোগ্য করে তোলে।